package com.miaow.service;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import org.springframework.stereotype.Service;

/**
 * @author HWZ
 * @date 2023年12月18日 19:24
 * @description
 */

@Service
public class MiaowService {
    @HystrixCommand(commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "3000")}, fallbackMethod = "fallbackMethod")
    public String yourMethod() throws InterruptedException {
        // 实现你的业务逻辑
        //我在这里休眠5秒，代表服务超时了。
        Thread.sleep(5000);
        // 如果发生异常或者超时，Hystrix将会调用fallbackMethod方法进行降级处理
        return "Your result";
    }

    public String fallbackMethod() {
        // 降级处理逻辑
        return "Fallback result";
    }
}
